I know that there is a gas limit for each transaction, set by the sender. Also there is a gas limit for each block set by the miner. So I want to know does an additional gas limit applied to the mined blocks when being verified by other nodes before insertion to the chain, or they just rely on the gas limit set by the miner in the block header?
Part of the process of verifying a block is verifying that it doesn't use more gas than the block gas limit declared in its header. All implementations should be doing this - if any of them don't it's a (highly critical) bug.