. . . when miner selects transactions for candidate block, they usually pick transactions with higher fee. . .
The transactions are typically chosen by the software that the mining pool operates. Individual participants in the mining pool generally don't get to choose the transactions. Since the mining pool gets to use those fees for profit and/or to pay the participants, and since there is a limit to the number of bytes of data that can fit into a block, choosing the transactions with the highest feee per used space is the most profitable thing to do.
can they pick any valid transactions with significantly low fee?
Sure. But they will earn less bitcoin if they do. Since miners need to pay for the mining equipment, internet connectivity, electricity and possibly employees that they use, and mining pools need to pay for their servers, network connectivity, electricity, and mining participants, they need to earn as much bitcoin as they can. If they fail to earn enough bitcoin to pay for all the costs, then they will run out of money and have to stop.
if they can, how all these things work?
The mining pool would just modify the computer software that they use so that it uses some other method of choosing transactions.
is it manually adding a list of transactions?
That would be possible, but it would be slow and risk errors. Far more likely, they would just modify the software to implement whatever criteria they wished to use.
or automatically?
It depends on why they are doing it, but since mining continues 24 hours a day, every day, continuously, it would generally make more sense to have software that handles most of the process for them.
i guess if it's an automated process, miner can't pick low fee transaction at all but i read that miners can include any transactions they want for the candidate block.
If you're talking about a miner that is mining for a mining pool, then they would need to rely on the pool to handle it. For a solo miner, they would need to modify their own software.