MAG3110 and MPU6050 on one I2C bus connected to a Raspberry Pi
Most likely culprits

a) both boards have built-in pull-ups, which makes it too strong when you connect them simultaneously. Solution: locate and remove pull-ups from one of the boards. Note that many boards (e.g. Sparkfun ones) have solder jumpers between resistors and VCC, in which case you wouldn't need to remove resistors, simply remove the jumpers.

b) one or both boards have built-in level shifters that complicate matters, especially considering both sensors and RPi work at 3.3V already. Solution: hack the modules to remove LDOs and shifters. Connect incoming 3.3V and IO lines directly to corresponding PCB traces. Leave 2 pull-ups on one board or remove all of them and have your own external pull-ups.

Update: if your PCF8591 module is anything like this one it also has built-in pull-ups. It's amazing how many manufacturers make those permanent without considering that maybe the reason for using I2C is to have several devices on few pins. In short, if you get to hacking boards do this one as well. Then you can mix them in any combination with external pull-ups.