My guess is that the problem happens in wrapping the subselect inside another select in is_empty(), whereas any() doesn't do that.
My guess is that the problem happens in wrapping the subselect inside another select in is_empty(), whereas any() doesn't do that.