exclude a post from wp_query loop

If I’m understanding your specific question (and posted code) correctly, you’re actually trying to exclude the most recent post from your query? If so, there’s a much easier method: use the offset parameter:

$query2 = new WP_Query( array( 'offset' => 1 ) );

Using this method, you exclude the most recent post from $query2, and never actually need to run $query1.