has_excerpt() not working inside wp_query

So we already resolved the issue via the comments, but I thought I should explain something:

has_excerpt() returns ! empty( $post->post_excerpt ) if the post has a custom/manual excerpt, so if the function is returning true when it should be false, then it’s likely because the length of the excerpt in the database is > 0, e.g. when the value is a whitespace — empty( ' ' ) = false. (But note that empty( '0' ) or empty( 0 ) is true)

So if that’s the case, then you should fix the post_excerpt value in the database so that the function returns the expected value.

But as I said in the comment, I’m not sure why the excerpt was imported with all that whitespace, so I could only guess they were added during export or maybe the import, via a filter.

Anyway, I hope this answer helps! 🙂