Hi Harold,
Could you please post here the waveforms to review what is going on on the I2C bus?
A single byte read e.g. from the WHO_AM_I register 0x0D should look like this:

A common problem with the read operation is sending a stop condition (a low to high transition of SDA while SCL is high) after the second byte (in this case 0x0D). The correct way is to release the SDA line (so that it transitiones to high) before the SCL line goes high.
As for the pull-up resistors, the recommended value is between 1k - 4.7k.
VDD I/O can differ from VDD to accommodate the desired interface voltage and can go down to 1.71V. For single-supply operation, VDD I/O can be the same as the main supply, VDD (1.95V to 3.6V).
Regards,
Tomas