Using query_posts inside single.php loop

You need to call wp_reset_postdata() after your query to restore the global $post variable that the navigation link functions use to determine the next/previous posts.