I assumed the problem is that your spawner and the bullets won't look at the player when it shoots
func _on_fire_rate_timeout():
for i in [spawner]:
var bullet = pl_enemy_bullet.instance()
# another way of adding bullets to the scene tree
var main_scene = get_tree.current_scene
main_scene.add_child(bullet)
bullet.position = i.global_position
bullet.rotation_degrees = i.rotation_degrees
var direction = (player.global_position - global_position).normalized()
# if the spawner is in top down and you want the spawner to look at the player
i.look_at(player.global_position)
# the spawner will add pi divided by 2 amount of rotation
i.rotation += PI / 2
# I assumed that your bullet will have direction.angle() instead of just direction since it will compare a float with a Vector2, making it invalid
bullet.look_at(player.global_position)