### Godot version

Godot Engine v4.0.stable.official.92bee43ad

### System information

Windows 10

### Issue description

The documentation states that passing ```null``` into the image parameter of ```set_custom_mouse_cursor``` will change it back to the system cursor, however I find that it removes the cursor's image entirely, rather than setting it to the system's cursor.


### Steps to reproduce

```var isimage = false
var theimage = load("res://final.png")

func _on_my_button_pressed():
    if isimage == false:
        Input.set_custom_mouse_cursor(theimage, Input.CURSOR_ARROW, Vector2(16,16))
        isimage = true
        
    else:
        Input.set_custom_mouse_cursor(null)
        isimage = false```

When the button is pressed, the cursor is meant to change to the new cursor. When it has been pressed a second time, it changes back to the default cursor. However, upon pressing it a second time, it simply disappears. The cursor becomes visible again when the cursor exits and re-enters the window.

### Minimal reproduction project

[null mouse.zip](https://github.com/godotengine/godot/files/10901969/null.mouse.zip)

Window root_return, child_return;
	int root_x, root_y, win_x, win_y;
	unsigned int mask_return;
	Bool xquerypointer_result = XQueryPointer(x11_display, wd.x11_window, &root_return, &child_return, &root_x, &root_y,
			&win_x, &win_y, &mask_return);
	if (xquerypointer_result) {
		if (win_x > 0 && win_y > 0 && win_x <= wd.size.width && win_y <= wd.size.height) {
			last_mouse_pos.x = win_x;
			last_mouse_pos.y = win_y;
			last_mouse_pos_valid = true;
			Input::get_singleton()->set_mouse_position(last_mouse_pos);
		}
	}
}
bool DisplayServerX11::_refresh_device_info() {
	int event_base, error_base;
	print_verbose("XInput: Refreshing devices.");
	if (!XQueryExtension(x11_display, "XInputExtension", &xi.opcode, &event_base, &error_base)) {
		print_verbose("XInput extension not available. Please upgrade your distribution.");
		return false;
	}
	int xi_major_query = XINPUT_CLIENT_VERSION_MAJOR;
	int xi_minor_query = XINPUT_CLIENT_VERSION_MINOR;
	if (XIQueryVersion(x11_display, &xi_major_query, &xi_minor_query) != Success) {
		print_verbose(vformat("XInput 2 not available (server supports %d.%d).", xi_major_query, xi_minor_query));
		xi.opcode = 0;
		return false;
	}
	if (xi_major_query < XINPUT_CLIENT_VERSION_MAJOR || (xi_major_query == XINPUT_CLIENT_VERSION_MAJOR && xi_minor_query < XINPUT_CLIENT_VERSION_MINOR)) {
		print_verbose(vformat("XInput %d.%d not available (server supports %d.%d). Touch input unavailable.",