When using the read_only_data_struct variable to access the Neuron ID, the first element of neuron_id is “07” whereas the service pin message reports "00". The other bytes are identical.
This behaviour is caused because of the way the Ft6050 is designed. There are 2 different identifiers in a FT6050 but only one is actually used. These are the "original Neuron ID" and the "MACID". The MACID is the one that is actually used, and sent over with a service pin.
The "original NeuronID" is stored at the original location but start with 07. This is not used and this is not something you need to worry about. If you want your application to access the MACID, you should use the Neuron C function access_mac_id() as in:
memcpy((void*)myneuronID, access_mac_id(), sizeof(myneuronID));