Where does extra bytes come from
Part of the difference can be explained by:

InnoDB stores the table as B-tree inside its Primary key (primary key is clustering index for the table). And B-tree has some storage overhead (pointers on each node and internal nodes - for your row count the tree might have say 3-5 levels). + each secondary index would add some space too but you do not have any. Not sure if it accounts for the entire 1.1GB difference but it will be a big part of it.

Another thing is that the file does not automatically shrink on deletes. Only on optimize/alter which rebuilds the entire table. But it would be reported in data free column of the table status.