Products.ERP5Type.Core.Predicate: Obey isEmptyCriterionValid .
When EmptyCriterionValid property is true, this method is expected to return a query which does not match any document. This only happens when query_list is empty, but because of category membership checking, query_list is never empty: it at least contains two ComplexQueries which themselves may contain an empty query list, and which match all documents. Calling getCategoryParameterDict with an empty list is dubious, but changing its behaviour in ZSQLCatalog may affect more than just predicates, so change the behaviour in Predicate class directly by checking whether there is any category being matched to begin with.