You should not use query_posts more than one time. It will create errors. You have to use wp_query
.
Here is what it says in wordpress codex:
query_posts( is meant for altering the main loop. Once you use
query_posts(), your post-related global variables and template tags
will be altered. Conditional tags that are called after you call
query_posts() will also be altered – this may or may not be the
intended result.
http://codex.wordpress.org/Function_Reference/query_posts
<?php $query_one = new WP_Query('cat=3&showposts=1'); ?>
<?php while($query_one->have_posts()) : ?>
<?php
$postcount++;
if( ($postcount % 2) == 0 ) : // skip 'even' posts
$wp_query->next_post();
else :
?>
<?php $query_one->the_post(); ?>
<?php if ( function_exists( 'get_the_image' ) ) { get_the_image( array( 'custom_key' => array( 'post_thumbnail' ), 'default_size' => 'full','image_class' => 'alignleft', 'width' => '120', 'height' => '120' ) ); } ?>
<?php endif; ?>
<?php endwhile; ?>
<?php wp_reset_postdata(); // Important to reset it when done ?>
</div>
<?php $postcount = 0; rewind_posts(); ?>
<div class="even-column">
<?php $query_two = new WP_Query('cat=3&showposts=2'); ?>
<?php while($query_two->have_posts()) : ?>
<?php
$postcount++;
if( ($postcount % 2) != 0 ) : // skip 'odd' posts
$wp_query->next_post();
else :
?>
<?php $query_two->the_post(); ?>
<?php if ( function_exists( 'get_the_image' ) ) { get_the_image( array( 'custom_key' => array( 'post_thumbnail' ), 'default_size' => 'full', 'image_class' => 'alignleft', 'width' => '60', 'height' => '60' ) ); } ?>
<?php endif; ?>
<?php endwhile; ?>
<?php wp_reset_postdata(); // After every wp_query ?>
</div>
You can read more about it here:
http://codex.wordpress.org/Class_Reference/WP_Query