as you can see XX78 and xx79 are both solved quickly after previous, but not empty nor full(yep. it happens)
But if you use a site like
https://jochen-hoenicke.de/queue/ to look at the mempool when those blocks were mined - 09:12 and 09:16 on May 1st - then both blocks were as full as they could be. They both emptied the mempool of all available unconfirmed transactions. So they were not partially full because they were slow to update candidate blocks, but because there was nothing else to mine.
So while miners do indeed miner empty blocks in the few seconds it takes them to validate the previous block, update their mempool, and construct a new candidate block, it does not appear that they construct a half filled candidate block and attempt to mine that for a few seconds while they then construct a completely full candidate block. They go from empty to full in one movement.