is_page(id) not working for blog page

If the page you’re trying to check is set as Page for posts, then is_page conditional won’t be true.

In such case you should check if is_home.

Why? All these conditional tags are based on global wp_query. For page that is set as page for posts (home of your blog), the global query doesn’t contain singular page – it contains list of blog posts.