Yes, not very often.
A miner can assemble a block full of transactions it made itself or from others that pay no gas. If the miner finds a nonce then the miner can commit that block.
However, consensus algorithms make it difficult for a lone miner to win the privilege of doing it. Mining pools are uniquely positioned to leverage transient miner advantages.
but how exactly are all of these transaction fees sent to the miner who mines the block?
They are not really sent anywhere - they don't need to be.
When a block is mined by a given miner, the consensus protocol ensures that the rest of the network becomes (eventually) consistent, meaning that all other miners accept the approved block, and get on with ...