Which STM32?
As given in the FIFO subchapter of I2S chapter in RM, data written to SAI_xDR are right-aligned, i.e. the most significant bits beyond the set transfer data width are ignored. In other words, if you use 24-bit transfer and you write 0x12345678, then it's the same as if you'd written 0x00345678 or 0xFF345678.
For the rest of data, SAI does not care, simply transmits them. It's upon the device on the other end of the wire to interpret the data. I've never seen an I2S DAC which would not support two's complement (transmitted as MSB-first), as the primary data format (I've seen some which supported additional data formats, but that's probably rare). This is btw. also the requirement of the I2S specification.
That means, mid is 0x000000, max positive is 0x7FFFFF and max negative is 0x800000 (for sake of "symmetry" you might see 0x800001 as max negative if you want, but the difference is negligible).
JW