The problem is that, for certain types of schema mismatch between the Hive table definition and the "hive.sql.query" parameter, Hive simply returns no rows rather than throwing an error when queried.
Ideally Hive would check for schema compatibility during table definition and throw an error if there's a problem - the earlier the better. But even if that cannot be made a requirement, I'd definitely expect an error rather than a silent failure (i.e. zero rows returned) at runtime.
I'm attaching investigation of this issue in "Hive-JDBC schema matching sensitivity.txt".