Creating empty blocks vs creating full blocks I've already read many different answers to this topic. 

Is it correct that the miner decides on his own if he includes any transactions in his block and how many (as long as the block size is &lt;1MB?)?

What is more beneficial for the miner and why: Creating an empty block, or creating either a block that contains all transactions of the pool/or &lt;1MB? Or is there an optimum?

Isn't it faster for a miner to not include any transactions in order to get the reward? Even more, if a large mining pool did that, isn't there the danger of taking over the network?
Yes, you are correct that miners get to decide whether to include transactions in their block that they're mining. The protocol itself doesn't force them to include any transactions. Instead, they have a financial incentive to include transactions because they can collect transaction fees and profit more. 

It's an interesting trade-off for them, because their profit has to outweigh their costs of validating those transactions. However, I suspect transaction validation doesn't cost miners anything because they can validate and hash transactions for block i+1 as they are mining for block i with different hardware: validation is done on CPUs, mining is done on ASICs. 

But there are interesting cases: For instance, miner A has to recompute their next block i+1 if  another miner B finds block i and it includes transactions from miner A's next i+1 block. In that case miner A would have to remove some TXs from his block i+1 and recompute the Merkle tree. Or miner A can create an empty block i+1 and just mine on that.

Sometimes, when mining on block i+1, miners even skip on validating other miners' block i in the hopes of winning the race by starting earlier [1].

Hope this helps clarify things a little.