Was there a pause between writeto_mem() and readfrom_mem(). It may have not finished writing before being read.
Either run the write and read lines separately, or use the time module to add a pause.
import time
time.sleep_ms(100)

The readfrom_mem() internally performs a SPI write to set the start address before making a SPI read of n bytes. You don't have to do anything extra here.

Those A0/A1/A2 address pins will change the 0x50 (80) to 0x51 (81), 0x52 (82) etc.
i2c.scan() returns the base10 value 80, which is 0x50 in base16 (hex).
You can use either i2c.writeto_mem(0x50, ...) or i2c.writeto_mem(80, ...). Makes no difference.
Most people use the hex value as it matches the datasheet.