SQL INNER JOIN, CROSS JOIN & implicit JOIN (comma) all result in what we can call an SQL "cross product" of every possible concatenation of a left argument row with a right argument row (with columns renamed per source table alias). In the case of INNER JOIN, ON then removes all of those result rows that don't satisfy its condition. (So INNER JOIN ON 1=1 is the same as CROSS & implicit JOIN. This is also the result for dialects allowing INNER JOIN without ON.) This is so regardless of what NULLs may be in a table.
See this (dialect-independent) answer explaining INNER/CROSS/implicit JOINs. Which also explains that every JOIN "makes sense". (Although SQL meanings for non-relational SQL tables (those with NULLS or duplicate rows) are complex and obscure.) Of course, using the wrong query doesn't "make sense".
PS You probably only want to SELECT UNIQUE rows. You probably don't want the rows WHERE a.employee = a.employee
. And you may not want, for columns (a.employee, ..., b.employee, ...), both the row (x, ..., y, ...) and the row (y, ..., x, ...), for which the usual solution is something like WHERE a. employee <= b.employee
. But you need to know your input table and result table meanings before you can write an appropriate query.