How is it possibile to verify payments without running a full network node?
You are right, in order to prove that a transaction is confirmed in a block you need more than only the Merkle root. The information needed is called the Merkle path and consists of the left/right leaf to your transaction node and the right/left parent, and so on up to the root.

Here is a graph depicting a Merkle path:
http://chimera.labs.oreilly.com/books/1234000001802/ch07.html#merkle_tree_path

The Merkle root and path, and also the block headers of the blockchain, are requested from a selection of random Bitcoin nodes.
Your SPV client cannot verify that the transaction is valid (not a double spend, correct signatures, etc.), but since it can verify that the transaction was included in a block with X confirmations, it can assume that the Bitcoin network accepted the transaction. Thus your SPV node will accept the transaction by trusting that the Bitcoin network only includes valid transactions to the blockchain.