I have looked upon your example code and could not extract any passed in name of which member you passed in using a Func. Switching to Expression of Func allows me to access the passed in field name. This is very fine tuned to only expect the type of expression you are using here, getting the Right-Hand-Side of a lambda expression in C# requires more code to handly different cases.
Changes in your code was an added null check and switching to use Expression of Func in the argument of AddGetter method. The code was ran inside Linqpad and I added a main method to run initialization code to test it out. I also added a public proxy property to read out the IsEnabledVar.

void Main()
{
var model = new Model();
model.InitialiseModel();
Console.WriteLine($"Passed in field name : {model.IsEnabledVar.GetterFieldName}");
}
public class PointerVariable<T>
{
private Func<T> _getter;
private string _getterFieldName;
public string GetterFieldName => _getterFieldName;
public void AddGetter(Expression<Func<T>> getter)
{
_getterFieldName = (getter?.Body as MemberExpression)?.Member?.Name;
_getter = getter.Compile();
}
}
public class MonoBehaviour
{
protected bool enabled;
}
public class Model : MonoBehaviour
{
protected PointerVariable<bool> _isEnabledVar;
public PointerVariable<bool> IsEnabledVar => _isEnabledVar;
public virtual void InitialiseModel()
{
if (_isEnabledVar == null){
_isEnabledVar = new UserQuery.PointerVariable<bool>();
}
_isEnabledVar.AddGetter(() => enabled);
}
}