So, why did it break when you updated?
The answer is that the pre_get_posts filter was running when ACF was getting the field. I’m assuming here that you were using ACF4. ACF4 did not use a post type for acf fields and ACF 5 does and it uses WP_Query() to get the field info.
Sorry, I should have caught that the condition was not specific enough.