PHP get the first post separately from array returned by wpdb->get_results()

once you have set of result in particular order you can achieve it simply as below : –

$pageposts=$wpdb->get_results("
            SELECT * FROM $wpdb->posts 
            WHERE post_type="post" AND post_status="publish" 
            ORDER BY post_date DESC LIMIT 6
        ", OBJECT);

First time

$i=1;
foreach($pageposts as $pageposts_first){
//here goes your first post
if($i==1) break;
}

For rest of posts

$i=0;
foreach($pageposts as $pageposts_rest){
 $i++;
   if($i==1) continue;
  //here goes you rest of posts
}

You can do same thing even if you use get_posts instead..