That is a textbook example of a defective singleton.
If you ever find yourself asking “is this instance null?” then you are working with a defective singleton. Delete it and make one that plays nice with Unity3D.
Some super-simple Singleton examples to take and modify:
Simple Unity3D Singleton (no predefined data):
Unity3D Singleton with a Prefab (or a ScriptableObject) used for predefined data:
These are pure-code solutions, DO NOT put anything into any scene, just access it via .Instance
Alternately you could start one up with a [RuntimeInitializeOnLoad] attribute.
There is never a reason to drag a GameObject into a scene if it will be DontDestroyOnLoad.
If you do:
you may drag it into something else that isn’t DDOL. FAIL
you may drag something else into it that isn’t DDOL. FAIL
Just DO NOT drag anything into a scene that will be marked DontDestroyOnLoad. Just Don’t Do It!