get_pages gives wrong ID for blogpage

No, the blog page is just a regular page, it has no special ID number and it can be anything. The only special thing about a blog page is that it was assigned to use as a “blog” page and you can check for its ID value in one of the options.