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’t for page – your page is no 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()?