Here's why:
* The vowel is followed by a consonant. The "a" is followed by the consonant "g".
* The "a" is not in a closed syllable. A closed syllable ends with a consonant, and "wagon" has two syllables.
Therefore, the "a" in "wagon" has a short vowel sound, similar to the "a" in "cat".