### Godot version

4.1.dev (4d5f10fc3a)

### System information

macOS 13.3.0 - Vulkan (Forward+) - integrated Apple M1 Pro - Apple M1 Pro (8 Threads)

### Issue description

When switching filter without coming back to an empty search those that were not matching the search but are included in the new search and none of their child is included will stay greyed out.

### Steps to reproduce


https://github.com/godotengine/godot/assets/66184050/2901bcfe-7834-4f1a-b71f-3b7ad08c3754



### Minimal reproduction project

N/A
warning_icon = SNAME("NodeWarnings4Plus");
			}
			
			const String bullet_point = String::utf8("•  ");
			int next_newline = 0;
			while (next_newline != -1) {
				next_newline = conf_warning.find("\n", next_newline + 2);
				if (conf_warning.substr(next_newline + 1, bullet_point.length()) != bullet_point) {
					conf_warning = conf_warning.insert(next_newline + 1, "    ");
				}
			}
			String newline = (num_warnings == 1 ? "\n" : "\n\n");
			item->add_button(0, get_theme_icon(warning_icon, SNAME("EditorIcons")), BUTTON_WARNING, false, TTR("Node configuration warning:") + newline + conf_warning);
		}
		if (p_node->is_unique_name_in_owner()) {
			item->add_button(0, get_theme_icon(SNAME("SceneUniqueName"), SNAME("EditorIcons")), BUTTON_UNIQUE, false, vformat(TTR("This node can be accessed from within anywhere in the scene by preceding it with the '%s' prefix in a node path.\nClick to disable this."), UNIQUE_NODE_PREFIX));
		}
		int num_connections = p_node->get_persistent_signal_connection_count();
		int num_groups = p_node->get_persistent_group_count();
		String msg_temp;
		if (num_connections >= 1) {
			Array arr;
			arr.push_back(num_connections);
			msg_temp += TTRN("Node has one connection.", "Node has {num} connections.", num_connections).format(arr, "{num}");
			if (num_groups >= 1) {
				msg_temp += "\n";
			}
		}
		if (num_groups >= 1) {
			msg_temp += TTRN("Node is in this group:", "Node is in the following groups:", num_groups) + "\n";