Yes, but if you look at the defines:
#define bitRead(value, bit) (((value) >> (bit)) & 0x01)
#define bitSet(value, bit) ((value) |= (1UL << (bit)))
#define bitClear(value, bit) ((value) &= ~(1UL << (bit)))
#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
Your bitRead (and bitWrite) are working on 0x40094000, not what it is pointing to.
And the 0x13 bit of the number 0x40094000 is indeed 1.
I suggest something like:
long* x = (long*) 0x40094000;
bitWrite(*x, 0x13, 0);
Can't test it because I don't have a Due, but I'm sure the macro does what I said.