I need force_turbo because otherwise overclock is useless, because when i check the clock speed while playing videos it hovers above 900Mhz.
Assuming the videos are hw accelerated (e.g. hevc or h264) then the arm isn't used for video decoding, and there's no reason for the clock to be high. The hevc/h264 clocks will be high in this scenario.
You could always force full arm frequency without force_turbo with:
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
But if the hard disk isn't detected with force_turbo, then I'd say it is power supply related.
Even if drive has an external power supply, that is often just 12V for the motor, and it will still take 5V through USB.
If you have a powered usb hub then try connecting through that.