Как можно реализовать категории и подкатегории в MySQL ?
Да можно. Вам нужно реализовать хранение деревьев.
Варианты в порядке усложнения: adjacency list, materialized path, nested sets, nested intervals
id, name, parent1, 'категория 1', 0
2, 'подкатегория 1', 1
3, 'подкатегория 2', 1
4, 'подкатегория 3', 15, 'категория 2', 0
6, 'подкатегория 1', 5
7, 'подкатегория 2', 5
8, 'подкатегория 3', 5