How can I access specific posts brought back by query_posts?

Why not just use a counter and then conditional logic?

$i = 0;
while($loop->have_posts()) : $loop->the_post();
    if($i === 0){
        echo '<div class="a">'.other_stuff().'</div>';
    } elseif($i === 1){
        echo '<div class="b">'.other_stuff().'</div>';
    } else {
        echo '<div class="default">'.other_stuff().'</div>';
    }
    $i++;
endwhile;