Logically, there's no problem with a single-column table using a name as key, if you want to predefine categories before recording posts. If categories can't exist without posts, you don't even need this single-column table.
Practically, names are less stable than surrogate keys. Unless you expect huge datasets, your DBMS doesn't support ON UPDATE CASCADE, or you design the database poorly, that isn't much of a concern. If your category names are long and you expect huge datasets, record size, index size and join performance might become a concern. On the other hand, using the category name directly negates a join (with the categories table to get the name). Your choice of key scores well against the other criteria specified in What are the design criteria for primary keys?
To conclude, a single-column table is fine for the requirements you specified.