Du fügst die Sphere als Child des Collider ein
collision.collider.get_parent().add_child(sphere)
Dabei wird die Position der Sphere relativ zum neuen Parent Transform festgelegt. global_position wird dabei in den lokalen Raum des neuen Parent konvertiert. Positioniere die Sphere wie die Linie auch am Root Node deiner Szene. Ersetze
collision.collider.get_parent().add_child(sphere)
sphere.global_position = hit_position
durch
get_tree().root.add_child(sphere)
sphere.global_position = hit_position