Almost.
pointer_null is a null pointer.
undefined is returned when a function has to return
something but has no appropriate or "correct" value to return, such as attempting to get a list element out of bounds.
(Source:
https://manual.yoyogames.com/#t=GameMaker_Language/GML_Overview/Variables/Constants.htm)
A variable that was "not set" according to error messages is a variable that has not been declared (case 1), or declared but not assigned a value (case 2).
Case 1:
This variable does not exist at all. It therefore can't have a value.
variable_instance_exists says the variable does not exist.
Error: local variable <unknown built-in variable>(-1610512726, -2147483648) not set before reading it.
Case 2:
GML:
var test;
show_message(test);
This variable has been declared as local, but has not been set. It has no value.
Setting it further down the line will make it come into existence as a local variable.
variable_instance_exists says the variable does not exist.
Error: local variable <unknown built-in variable>(-1610512726, -2147483648) not set before reading it.
Case 3:
GML:
var list = ds_list_create();
var test = list[| 0];
show_message(test);
This variable has been declared and set.
variable_instance_exists says the variable exists.
The variable has the value
undefined.
Output: undefined
Case 4:
GML:
var list = ds_list_create();
list[| 0] = "works";
var test = list[| 0];
show_message(test);
This variable has been declared and set.
variable_instance_exists says the variable exists.
The variable has the value "works".
Output: works
I hope that clears it up.