Read display identification information (04h)

From memory, the diagnostic registers i.e. 0x04 - 0x0F are readable directly. You don't need to read the index via 0xD9.

Note that the first read is valid with these special registers.

The ILI9488_RDID1-3 values are all 00h. Is that OK? And is it OK that the ILI9488_RDSELFDIAG (0x0F) is 00?

Looks ok. ID1-3 reflect whatever is stored in reg(0x04). And these registers are directly readable. (you must check with the datasheet)

I am always horrified by people that have 5V Nanos.
They buy the cheapie hardware and then can't afford resistors or level shifter chips.

And it is a lot more fiddly with external logic hardware than regular 3.3V Arduinos.

Please post a schematic of your wiring. Or a photo of the real-life wires.

David.