pre_get_posts
does not work as expected on true pages and static front pages. You should create a custom query using WP_Query
to return the posts that you need.
EDIT
Thanks to @birgire in comments, here is an interesting approach using pre_get_posts
with a static front page