This is a common problem that command lines are not unlimited in size and number of arguments. A common way to get around these limits it to use find / xargs pipes.
Your case should work like this:
findsudo sh -c "find . -mindepth 1 -maxdepth 1 -print0 |xargs -0 sudo du -hsx -- " |sort -rh |head
sudo requirement makes it look a bit more tricky than usual.