Sono nel ristorante messicano Zapata.
"I'm in / inside the mexicanMexican restaurant Zapata.";
It's not wrong, but it focuses more on the fact that you're inside the restaurant than on the fact that you're at the restaurant having dinner;
It would be good to tell the listener where you're at if e.g. you lost each other and you're unable to regroup.
Sono nel Zapata.
"I'm in / inside the Zapata.";
This is definetly wrong.
Sono da Zapata.
Sono al Zapata.
"I'm at Zapata's."
"I'm at the Zapata (?)"
These are quite similar; the first one is the equivalent of the English "I'm at X's place" or "I'm at X's"; the second one requires the listener to know what Zapata is already, because "(?)" might be almost anything and is implied; in this case what is implied is "restaurant" ("Sono al (ristorante) Zapata").
Sono al ristorante messicano Zapata.
"I'm at the mexicanMexican restaurant Zapata."
This is perfect to tell the listener where you're at in case Zapata is not a place which the speaker is familiar with.