Do miners check whether a transaction is segwit or non segwit? When a transaction is pushed directly to a miner does it check whether the transaction is segwit or not or only if it is valid?
The miner only determines if it is valid. Miners do not, in a sense, "discriminate" between Segwit or Legacy.