Any object you want to check the position of should be in a group. You could then iterate through the nodes in that group and check their position against the one you’re looking for.
func kill_node_at_pos( pos=Vector2(100,52) ):
for node in get_tree().get_nodes_in_group("guffins"):
if node.get_pos() == pos:
node.queue_free()
This most likely will be an ineffective way of doing what you’re doing, unless you’re quantizing your positions in some way. If the node is at position (100, 52.00001) it will fail the check.
This will only work if your node is EXACTLY at the position you test, in pixels, without any consideration about its size or shape. That should be ok for tile-based games with no movement animation from tile to tile.
Objects you want to check for overlaps should be or have a CollisionObject (area, body, with shape), then you can use the Physics server functions to check point, ray or shape intersections.