Thought so...

You are using query_posts() and this nukes native page's loop and replaces all relevant data with your query. Since your query isn for page - your page is longer treated as such.

Always use get_posts() or new WP_Query object for secondary loops.

See When should you use WP_Query vs query_posts() vs get_posts()?


More Solution