Is there any rational reason miners would mine a block with one tx?
The only reason most miners would mine a block with no other transactions is if they find a block very quickly after another one.
When a miner receives the information that another miner has mined a block, that miner has to validate that block and then cross reference every transaction within that block against their own database of unconfirmed transactions, and remove all the unconfirmed transactions which have now been confirmed. If they tried to mine a block which contained a transaction which had already been confirmed, that block would be invalid and would be rejected. That process can take a few seconds. In the meantime, instead of just stopping all their mining activity and letting their machines sit idle, they simply try to mine an empty block which cannot be rejected for containing an already confirmed transaction, since it doesn't contain any transactions. Rarely, they are successful, and mine an empty block but still claim the (currently) 6.25 BTC block reward. Usually they are not successful, and once they know which transactions are now confirmed, they build a new block filled with the unconfirmed transaction with the highest feerate, and try to mine that instead.
Do miners choose which blocks to mine in the hope they mine a block which has a reward? Is that how it works?
Every block has a base block reward of (currently) 6.25 BTC. Miners build what is called a candidate block, where they create a block they want to mine filled with whichever transactions they want, which are usually the transactions with the highest feerate. Every miner will have a slightly different candidate block. Each miner then tries to solve the necessary hash equation for their own candidate block. Whichever miner is successful first, mines their candidate block and broadcasts it to everyone else.