Japanese is an adjective in (a) and a noun in (b).
If Japanese were a noun for (a) you would instead have,
(a') I am a Japanese.
(For adjective use vs. noun use, compare to: 'It is red.', 'It is fast.', 'It is a car.', 'It is a rock.' ; it has to be this way.)
This is (a') is grammatically correct but sounds strange for some reason. I don't know why exactly since 'I am an Italian' sounds fine to me and it's the exact same principle. 'I am a British' sounds worse than strange, it sounds flat out wrong, though again it follows the same principle.
In any case, for all nationalities (that I can think of) the adjectival use is the most normal, as in (a) not (a').
For almost all languages, they are named with a noun that looks like an adjective that describes that nationality: English, French, Japanese, Italian, Swedish, Russian. (This is obviously derived from shortening the adjectival use in phrases like 'the English language', but they just stand on their own as nouns now.)
There are some odd exceptions for artificial languages (Esperanto) and languages from areas where multiple languages compete (Hindi).