Can ions be acids or bases?
Yes, they can. There are different definitions of acids and bases. Here, I will use the Brønsted–Lowry definition, which says that an acid is an $\ce{H+}$ donor and a base is an $\ce{H+}$ acceptor. Your example, sulfate, is a base because it can accept an $\ce{H+}$. For further discussion on sulfate as a base, see this post.
Yet I thought bases and acids were compounds meaning they were always electrically neutral?
If you want sulfate as part of a compound, you need a counter ion such as sodium. The compound would be sodium sulfate, which is a base because the sulfate ion can accept an $\ce{H+}$ while the sodium ion has no acid/base properties (e.g. in water).
And how come it suddenly becomes an acid when it bonds to hydrogen to make sulfuric acid?
Acids and bases come in conjugate pairs, for example acetic acids and acetate. As acidic acid donates its $\ce{H+}$, it has acted as acid and yields acetate, a base. Conversely, the base acetate can accept an $\ce{H+}$, acting as a base to yield an acid.
Sulfuric acid can donate two $\ce{H+}$ ions (a diprotic acid), so it is slightly more complicated. Also, it is a strong acid, so it is very difficult to accept the $\ce{H+}$ after it was donated.
ammonia is somehow classified as a base when it doesn't even have any oxygen atoms present
With the Brønsted–Lowry definition, this is easy to explain. Ammonia can accept a $\ce{H+}$ ion, yielding the ammonium cation, so it is a base. When that happens in aqueous solution, $\ce{H+}$ ions are used up, the pH increases (becomes more basic) and the $\ce{OH-}$ concentration increases.
How do we clearly determine whether a substance or even ion is considered an acid or a base?
The easiest is to dissolve some of the substance in pure water (neutral pH), and check what happens to the pH. For a cation, use e.g. the chloride salt, for an anion, use e.g. the sodium salt. So to test ammonia, you would bubble some into pure water (the pH will become basic). And to test ammonium, you would dissolve some ammonium chloride (the pH will become acidic).