As @reynlds said, there is far more to it than that - as there are a number of different factors interacting.
In the submissions table, you need to look at the "excused" boolean for that condition, and then consider looking at "late_policy_status" for manually applied overrides, as well as "seconds_late_override" and the actual "submitted_at" (which may not always have a value) compared to the assignment "due_at".
Some or all of these fields may have values depending on the path taken.
The answer to the question that you actually asked is that the submission status is held in the "workflow_state" - but that will not give you all the nuances you are after for a "submitted" state. Likewise, "missing" (where no submission has been made, and no grading applied) may have to be inferred from the absence of any submission records for the student.