Your issue seems similar to this github issue.
If you are using both keyboard and controller input in a single action, and assuming you are using
get_action_strength, it's possible that you are not given a constant strength, causing weird movements.
The state of the action is based on the last changed event, which isn't obvious when using analog controls. Though, if no controller is plugged, it would explain why input and therefore movement was returned to normal.
This is a known issue that will be fixed in some future version of Godot.
Try splitting your input into separate analogue and digital actions to see if this fixes your issue in the meantime.