diff --git a/frontend/src/metabase/components/ListField/ListField.tsx b/frontend/src/metabase/components/ListField/ListField.tsx
index f7c6889af9518d85fc7150736fa14e2ca9313ead..e691c3d3741f1986a6b144c2a5010cba9402a726 100644
--- a/frontend/src/metabase/components/ListField/ListField.tsx
+++ b/frontend/src/metabase/components/ListField/ListField.tsx
@@ -151,15 +151,17 @@ export const ListField = ({
       )}
 
       <OptionsList isDashboardFilter={isDashboardFilter}>
-        <OptionContainer>
-          <Checkbox
-            variant="stacked"
-            label={getToggleAllLabel(debouncedFilter, isAll)}
-            checked={isAll}
-            indeterminate={!isAll && !isNone}
-            onChange={handleToggleAll}
-          />
-        </OptionContainer>
+        {filteredOptions.length > 0 && (
+          <OptionContainer>
+            <Checkbox
+              variant="stacked"
+              label={getToggleAllLabel(debouncedFilter, isAll)}
+              checked={isAll}
+              indeterminate={!isAll && !isNone}
+              onChange={handleToggleAll}
+            />
+          </OptionContainer>
+        )}
         {filteredOptions.map((option, index) => (
           <OptionContainer key={index}>
             <Checkbox
diff --git a/frontend/src/metabase/components/ListField/ListField.unit.spec.tsx b/frontend/src/metabase/components/ListField/ListField.unit.spec.tsx
index cf27719dc4a1e61ac1176870696cb73cd9ec3a1c..a756a8dc4234d7b24950129d16aa9e235eaff386 100644
--- a/frontend/src/metabase/components/ListField/ListField.unit.spec.tsx
+++ b/frontend/src/metabase/components/ListField/ListField.unit.spec.tsx
@@ -128,4 +128,17 @@ describe("ListField", () => {
     expect(onChange).toHaveBeenCalledWith(["Doohickey", "Widget"]);
     expect(screen.getByLabelText("Gadget")).not.toBeChecked();
   });
+
+  it("should not show the toggle all checkbox when search results are empty", async () => {
+    setup({
+      value: [],
+      options: allOptions,
+    });
+    await userEvent.type(
+      screen.getByPlaceholderText("Search the list"),
+      "Invalid",
+    );
+    expect(screen.queryByLabelText("Select all")).not.toBeInTheDocument();
+    expect(screen.queryByLabelText("Select none")).not.toBeInTheDocument();
+  });
 });