Alright I didnt think about the fees at all. What happens to transactions without / with super low fees? They simply don't get included if the one who mined the block doesn't want to right?
Correct. If the transaction has very small outputs and does not include a fee, most miners (and mining pools) will not include it in their blocks and it will not confirm.
However, these non-blocked transactions must still show up somewhere, like be stored as "please insert me for free" somewhere?
The transactions will be stored in your wallet and your wallet will attempt to re-broadcast the transactions regularly.
Is this still spam-able?
The current version of the Bitcoin-Qt client (and many other wallets that are based on it) will refuse to acknowledge or relay any transactions that have extremely small outputs and a transaction fee of less than 0.0001 BTC. Therefore, your transactions will have a very difficult time ever leaving your wallet. If you do manage to connect to an old or modified client that someone is running, then yes, you can spam their memory and their bandwidth with such transactions. This is the exact reason that small transaction fees for tiny outputs exist in the reference client. Anyone who chooses not to implement the reference is willingly taking the risk of being spammed.
If there is enough transactions to take up more than 1 MB then what? The block can't take them and transactions stack up?
Miners that want to maximize their income will fill the next block with the transactions that pay the highest fees per kilobyte. Any other transactions simply wait around until a block that is not full comes along. This is why higher fees increase the likelihood that your transaction will be confirmed faster.