Fixed it. After all it was really dumb error on my part.
The WP_Query()
does not filter out unpublished posts by default. The internal archive page query does filter these posts out.
I had to add 'post_status' => 'publish'
to the $query_args
array and everything is now working as expected.
The final query then looks like this:
$query_args = array(
'post_status' => 'publish'
'post_type' => 'post',
'posts_per_page' => get_option( 'posts_per_page' ), // 10 by default
'offset' => get_option( 'posts_per_page' ), // 10 by default
'cat' => 8 // the category ID
);