### 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
ERR_FAIL_COND_V(!is_inside_tree(), nullptr);
	return get_tree()->get_edited_scene_root();
}
void SceneTreeEditor::_cell_button_pressed(Object *p_item, int p_column, int p_id, MouseButton p_button) {
	if (p_button != MouseButton::LEFT) {
		return;
	}
	if (connect_to_script_mode) {
		return; 
	}
	TreeItem *item = Object::cast_to<TreeItem>(p_item);
	ERR_FAIL_COND(!item);
	NodePath np = item->get_metadata(0);
	Node *n = get_node(np);
	ERR_FAIL_COND(!n);
	EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton();
	if (p_id == BUTTON_SUBSCENE) {
		if (n == get_scene_node()) {
			if (n && n->get_scene_inherited_state().is_valid()) {
				emit_signal(SNAME("open"), n->get_scene_inherited_state()->get_path());
			}
		} else {
			emit_signal(SNAME("open"), n->get_scene_file_path());
		}
	} else if (p_id == BUTTON_SCRIPT) {
		Ref<Script> script_typed = n->get_script();