Are you sure the field is just "N_A" and doesn't have a white space character or some other non-printable character?
If the field value is just "N_A" or "n_a", your statement should catch it:
>>> s = "n_a"
>>> str(s.upper()) in ["PIZZA", "N_A"]
True
>>> str(s.upper()) not in ["PIZZA", "N_A"]
False
>>>
UPDATE: It just dawned on me that the underscore might be a different underscore than you think, e.g., a combining low line or full-width low line. Are you running this in ArcMap or ArcGIS Pro?