Take what I will say with a grain of salt as I am not really sure about it, but it might be worth something.
So when you are moving up, your input_vector is (0, -1), and then setting the blend_position to just that value. Inside the blend space, that point (0, -1), is as far from (-1, 0) with the left animation, as it is far from (1, 0) with the right animation. The same goes for (0, 1) for moving down, I believe.
So I think the engine defaulted to the (-1, 0) somehow, and you only see the left animation.
What I suggest doing, since you don't have up or down animations, is to only set the blend_position when input_vector.x != 0
So inside the move_state(), inside the if input_vector != Vector2.ZERO:
if input_vector.x != 0:
animationTree.set("parameters/Idle/blend_position", input_vector)
animationTree.set("parameters/Run/blend_position", input_vector)
animationTree.set("parameters/Attack/blend_position", input_vector)
animationTree.set("parameters/Roll/blend_position", input_vector)
I hope this helped