Trying to start i2c communication on dspic33fj128gp802, but I cannot write on the SEN bit of the I2CxCON register
Firstly, the PIC micro-controller's I2C module does not support command queuing (hence brhans' comment). You must verify that the last operation completed before starting the next operation. 

e.x. (note that the register names for the interrupt flags will need to be rechecked for this PIC as this was adapted from another PIC's code)

//Pre clear the intterupt flag
IFS1bits.MI2C1IF = 0;

//Send the start condition
I2C1CONbits.SEN = 1;

//Wait for the start condition to complete
while (!IFS1bits.MI2C1IF);
IFS1bits.MI2C1IF = 0;

//Send the I2C address
I2C1TRN = I2C_ADDR;

//Wait for the send to complete and check that the node acknowledged
while (!IFS1bits.MI2C1IF);
IFS1bits.MI2C1IF = 0;

if (I2C1STATbits.ACKSTAT)
    return 0; //ERROR, node did not acknowledge!!!

...


Secondly, as Majenko correctly pointed out, you do not seem to configure the baud rate generator (I2C1BRG). It may be in an invalid state were the I2C module cannot successfully complete an operation.