I2C SCL ground issue
Problem:


  I powered on board 1  [...] As soon as I plug the I2C connector to board 2 (it's still powered off), SCL and SDA get pulled low. 


This is completely expected behaviour. You cannot connect both powered and unpowered devices to the same I2C bus, without additional precautions (or unless this is explicitly stated as being supported by that I2C device). In your case, board 2 may also misbehave afterwards as you are likely to be exceeding the maximum allowed voltage connected to an unpowered MCU pin on board 2.

That is because you are effectively trying to power the MCU on (unpowered) board 2 via its I2C bus pins, which are receiving power through the pull-up resistors on (powered) board 1.

Solution:

Use one of the various existing methods of I2C bus isolation between board 1 and board 2.

Since you say that your setup allows you to connect the Gnd between the two boards, I don't see a requirement for the more expensive and complex galvanic isolation methods.

Instead the simple MOSFET-based circuit, often used as an I2C bus level-shifter from the old Philips (now NXP) AppNote AN97055 can be used. Using the simple circuit in section 2.3 of the datasheet, you connect board 2 to the VDD1 side of the circuit:





[Although not shown on the above circuit diagram, Gnd (0 V) must also be connected between the VDD1 and VDD2 sides.]

Using the above circuit, when the VDD1 (board 2) side is unpowered, it also receives no power via the I2C bus signals, even when the other VDD2 (board 1) side of the circuit is powered. Therefore it stops the problem explained above, as described in this excerpt from the Philips AppNote:



Various vendors sell I2C level-shifter PCBs with this simple circuit using suitable MOSFETs, if you don't have them yourself. However, note that such PCBs often have pull-up resistors fitted. Since you already have pull-ups installed, you must remove any duplicate pull-up resistors from wherever is easiest (probably by removing them from the additional PCB).