The custom navigation menu uses the global `$wp_query` object to figure out what page is the current page and should get that class. `query_posts()` replaces this `$wp_query` object, so the navigation menu can't apply the correct classes. It's not a great solution, but if I were you I would either duplicate the content of `index.php` in `blog.php` and do the `query_posts()` after the menu is displayed, or add it in `index.php` inside a `if (is_home())` block.