The start of the explanation is that every block contains a single transaction called the "coinbase". In a permissioned blockchain, this is where the signature of the block validator is embedded, to prove the block's origin. (In a permissionless blockchain it's also used to assign the block rewards.)
So the real issue here is that your chain is continuing to generate blocks when there are no new transactions. Please see the mine-empty-rounds blockchain parameter which can control this. The value of building at least some empty blocks is to lock down the data in previous blocks, by the other participants in the network.
Note that if your chain is in the setup phrase, the mine-empty-rounds parameter is not applied, and empty blocks will always continue to be generated until that phase is compete (default 60 blocks).