diff --git a/tests/queries/test_qs_combinators.py b/tests/queries/test_qs_combinators.py
index e1ff860bf0..0bc1d053f3 100644
--- a/tests/queries/test_qs_combinators.py
+++ b/tests/queries/test_qs_combinators.py
@@ -46,23 +46,32 @@ class QuerySetSetOperationTests(TestCase):
     def test_intersection_with_empty_qs(self):
         qs1 = Number.objects.all()
         qs2 = Number.objects.none()
+        qs3 = Number.objects.filter(pk__in=[])
         self.assertEqual(len(qs1.intersection(qs2)), 0)
         self.assertEqual(len(qs2.intersection(qs1)), 0)
         self.assertEqual(len(qs2.intersection(qs2)), 0)
+        self.assertEqual(len(qs1.intersection(qs3)), 0)
+        self.assertEqual(len(qs3.intersection(qs1)), 0)
 
     @skipUnlessDBFeature('supports_select_difference')
     def test_difference_with_empty_qs(self):
         qs1 = Number.objects.all()
         qs2 = Number.objects.none()
+        qs3 = Number.objects.filter(pk__in=[])
         self.assertEqual(len(qs1.difference(qs2)), 10)
+        self.assertEqual(len(qs1.difference(qs3)), 10)
         self.assertEqual(len(qs2.difference(qs1)), 0)
+        self.assertEqual(len(qs3.difference(qs1)), 0)
         self.assertEqual(len(qs2.difference(qs2)), 0)
 
     def test_union_with_empty_qs(self):
         qs1 = Number.objects.all()
         qs2 = Number.objects.none()
+        qs3 = Number.objects.filter(pk__in=[])
         self.assertEqual(len(qs1.union(qs2)), 10)
         self.assertEqual(len(qs2.union(qs1)), 10)
+        self.assertEqual(len(qs1.union(qs3)), 10)
+        self.assertEqual(len(qs3.union(qs1)), 10)
         self.assertEqual(len(qs2.union(qs1, qs1, qs1)), 10)
         self.assertEqual(len(qs2.union(qs1, qs1, all=True)), 20)
         self.assertEqual(len(qs2.union(qs2)), 0)
