Welcome to the forums @HelpMePlease!
Does the heart autoload have the signal? It looks like the code that makes the connection is connecting to the heart autoload, rather than the heart itself, which may be why it's not working.
What you may want to do is have the heart autoload have the signal, and then when the player collides with a heart, have the heart node call a function on the heart autoload that emits the signal to the player. That way, you can have the player just connect to the heart autoload once. With having the signal on the heart itself, you would need to have the player connect a signal to each heart node, which may not be ideal if you have many hearts in the scene.
For the code, I think something like this would work (untested):
# =============
# Heart Script
extends Area2D
onready var stats = PlayterStates
func _on_Heart_body_entered(body):
if body.is_in_group("player"):
if stats.health < stats.max_health:
Heart_Autoload.on_health_pickup()
stats.health += 1
queue_free()
# =============
# ===============
# The heart autoload
signal Heal
func on_health_pickup():
emit_signal("Heal")
# ===============
# ===============
# The connection
Heart_Autoload.connect("Heal", self, "healing_effect")
# ===============
I'm not totally sure it would work, but I think it will. I would make a backup of your project first though, just in case it doesn't work so you don't lose anything.