You are getting "null instance" error because queue_free
destroys the node. If you destroy it you won't be able to respawn it unless you reload the level.
I see two ways of reloading:
1) Add a state to your node for when it has been "picked", "killed" or whatever. Also, put it in a group, for example "respawners". So when that happens, just hide it and disable its collisions if any. Then when you respawn, call a method on all nodes in the "respawners" group to reset them to their initial state (that you store in _ready), and show them back.
2) The other way around, you can also reload the entire level by deleting and re-instancing it, or using SceneTree.reload_current_scene ( )
. This will reset everything to where it was, however you would need to "remember" any special states in a parent node or in a singleton, if needed.