diff --git a/trac/ticket/query.py b/trac/ticket/query.py
--- a/trac/ticket/query.py
+++ b/trac/ticket/query.py
@@ -508,15 +508,13 @@
                     args.append(constraint_sql[1])
 
         clauses = filter(None, clauses)
-        if clauses or cached_ids:
+        if clauses:
             sql.append("\nWHERE ")
-        if clauses:
             sql.append(" AND ".join(clauses))
-        if cached_ids:
-            if clauses:
+            if cached_ids:
                 sql.append(" OR ")
-            sql.append("id in (%s)" % (','.join(
-                                            [str(id) for id in cached_ids])))
+                sql.append("id in (%s)" % (','.join(
+                                                [str(id) for id in cached_ids])))
             
         sql.append("\nORDER BY ")
         order_cols = [(self.order, self.desc)]

