Nope a MAC is a six byte number that globally identifies the WiFi module in the network and device ID is a proprietory 12 byte number to identify the whole device in the Particle eco system.
And both "numbers" are used for something completely different.
While the MAC is required for the network traffic to find its way to the device the Particle device ID is used to link the device to an account and does not have anything to do with the network traffic as such.
BTW, when you find the solution to a problem it's always appreciated when you also post that solution for others to benefit of your findings.
Since OP didn't provide the solution, here it is
root["macid"] = (const char*)myID;
//root["macid"] = myID.c_str();
This does the trick as it forces the
String object to be converted into a
const char* C-string.