If you are joining on that field and have USING(category) as the join condition then you will only get that column listed once in the PK table. If you used the ON(c.category=p.category) syntax you will get it listed twice in your results.
If you are not joining on that column then it should be listed twice.
Why does it mater which table it is listed in: it will be the same value anyway?
[note] This is one area where mysql differs from most other DBs which list results verbosely, ie table.column, and you have to address them as such in your code. I suppose the developers were trying to save keystrokes, web developers being notoriously lazy in that respect. The downside is what you are experiencing here, that columns do not come with their table identity attached.