INNER JOIN will only show data if the fields from both tables match. No data without an error means that the page_id is not in the pages table or the menu_category is not in the category table.
You can try using a LEFT OUTER JOIN to return rows when there are no matching records in the joined table.