du is measuring space used in the current directory and subdirectories.
ls -lha is only looking in the current directory.
try
But it could take a while ...
You will have to add up each directorys total to get a final total.
run as a user from /home/user on my system gives 753G
run as a user from /home/user on my system gives 52M
run as a user from /home/user gives 53M
man du
man ls