Keep sticky posts out of query unless they have featured image

Per the Codex article on WP Query:

ignore_sticky_posts (boolean) – ignore sticky posts or not. Default value is 0 – don’t ignore sticky posts. Note: ignore/exclude sticky posts being included at the beginning of posts returned, but the sticky post will still be returned in the natural order of that list of posts returned.

Adding 'ignore_sticky_posts' => 1 to your $args array will stop sticky posts from showing up when you don’t want them. Then 'meta_key' => '_thumbnail_id', can succeed at filtering out posts without featured images.