Tables with no rows not empty
TRUNCATE effectively drops and re-creates the table, so the allocated space is gone. A DELETE... command will only remove the rows but does not cause the table size on disk to automatically shrink. This would cause excessive I/O for every DELETE... command to shrink files if it were true.

Truncate Reference for MySQL 5.7