Does a Block contain the list of transactions? Or only the Merkle Tree?
You cannot obtain a list of transactions from the merkle tree.

The merkle tree root is part of the block header, which as you said, allows quick verification of the proof-of-work.

After the block header, each block contains a list of serialized transactions in the order they appear in the merkle tree. A complete block is a block header + list of transactions.

When validating a block, nodes will check:


The proof of work (this can be done with just the block header. However, just because the block header validates, it does not mean the block is valid)
The merkle tree - Nodes will take the list of transactions and reconstruct the merkle tree to ensure the root matches what is in the header
Each individual transaction - Individual inputs and outputs are validates to ensure they meet network rules, and that no double spends exist.