### 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 a script was attached to a node in a saved scene and this script is exporting a member typed with `Array[Node]` . Reopening the scene when the script is missing because it was deleted or moved will cause a crash






### Steps to reproduce

1. Create a scene with two nodes
2. attach a script to the root with just one exported member typed as `Array[Node]` 
3. Add both nodes to the exported member
4. Save the scene
5. close the scene 
6. Delete the script 
7. Try to open the scene again godot will crash 

### Minimal reproduction project

with the MRP you can start reproduction steps at the sixth step.
[Test.zip](https://github.com/godotengine/godot/files/11749000/Test.zip)
ERR_FAIL_NULL_V(node, nullptr);
			}
		} else if (n.type == TYPE_INSTANTIATED) {
			
			if (parent) {
				node = parent->_get_child_by_name(snames[n.name]);
#ifdef DEBUG_ENABLED
				if (!node) {
					WARN_PRINT(String("Node '" + String(ret_nodes[0]->get_path_to(parent)) + "/" + String(snames[n.name]) + "' was modified from inside an instance, but it has vanished.").ascii().get_data());
				}
#endif
			}
		} else {
			
			Object *obj = ClassDB::instantiate(snames[n.type]);
			node = Object::cast_to<Node>(obj);
			if (!node) {
				if (obj) {
					memdelete(obj);
					obj = nullptr;
				}
				if (ResourceLoader::is_creating_missing_resources_if_class_unavailable_enabled()) {
					missing_node = memnew(MissingNode);
					missing_node->set_original_class(snames[n.type]);
					missing_node->set_recording_properties(true);
					node = missing_node;
					obj = missing_node;
				} else {
					WARN_PRINT(vformat("Node %s of type %s cannot be created. A placeholder will be created instead.", snames[n.name], snames[n.type]).ascii().get_data());
					if (n.parent >= 0 && n.parent < nc && ret_nodes[n.parent]) {