The most likely reason for this is a pre_get_posts action that is interfering with the ACF query that is run when getting the image post. The usual case for this is not checking that the pre_get_posts filter is acting on the “Main Query” [is_main_query()]. There could be other issues, but 90% of the time this is the cause.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users