you will need a distinct list of all IDs between your two tables. To get this in PowerBI, click on 'Modeling' -> 'New Table' and enter this formula.
IDs = DISTINCT(UNION(
SELECTCOLUMNS(Categories, "ID", Categories[Id]),
SELECTCOLUMNS('Values', "ID", 'Values'[Id]))
)
This table will help create a many-to-many relationship between your category table and value table.
With that relationship in place, you can create another new table with this formula to get you results.
Results = SELECTCOLUMNS(NATURALLEFTOUTERJOIN(NATURALLEFTOUTERJOIN(IDs, Categories), 'Values'),
"ID", IDs[ID],
"Category", Categories[Category],
"Value", 'Values'[Value]
)