### 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)

if (desktop_valid) {
						Atom desktop_viewport_prop = XInternAtom(x11_display, "_NET_DESKTOP_VIEWPORT", True);
						if (desktop_viewport_prop != None) {
							unsigned long viewport_len = 0;
							unsigned char *viewport_data = nullptr;
							if (XGetWindowProperty(x11_display, x11_window, desktop_viewport_prop, 0, LONG_MAX, False, XA_CARDINAL, &type, &format, &viewport_len, &remaining, &viewport_data) == Success) {
								if ((format == 32) && (viewport_len >= 2) && viewport_data) {
									desktop_valid = true;
									long *pos_data = (long *)viewport_data;
									desktop_rect.position.x = pos_data[0];
									desktop_rect.position.y = pos_data[1];
								}
							}
							if (viewport_data) {
								XFree(viewport_data);
							}
						}
					}
					if (desktop_valid) {
						use_simple_method = false;
						
						
						int (*oldHandler)(Display *, XErrorEvent *) = XSetErrorHandler(&bad_window_error_handler);
						for (unsigned long win_index = 0; win_index < clients_len; ++win_index) {
							g_bad_window = false;
							
							bool strut_found = false;
							unsigned long strut_len = 0;
							unsigned char *strut_data = nullptr;
							Atom strut_partial_prop = XInternAtom(x11_display, "_NET_WM_STRUT_PARTIAL", True);