If all bits are inputs you don't need to write for every read. Just once in setup is enough. If there is a mix of inputs and outputs, then something else is required.
I believe you need to wait or check for a response
Wire.beginTransmission(address);
Wire.requestFrom((int)address, 1); // Ask for 1 byte from slave
uint8_t bits = Wire.read(); // read that one byte
Wire.endTransmission();
You must not put Wire.beginTransmission() and Wire.endTransmission() calls around Wire.requestFrom(). The *Transmission calls are used only for writing to the bus.
uint8_t address;
That code won't work as no address is defined.
And post schematics and not Fritzing's breadboard view!