this example posted on the math Stack-Exchange shows how the union of two NP-complete languages can be in P:

"For instance, take L1 to be the set of all Hamiltonian graphs, union the set of all Boolean expressions. Then take L2 to be the set of all graphs, together with satisfiable Boolean expressions. Then both L1 and L2 are still NP-complete, but L1∪L2 consists of all graphs and all Boolean expressions, which is a very boring language and clearly in P (I suppose one could even make it regular)."

and if we assume that, for any L1 and L2 in NP-complete, their union is also in NP-complete, then we conclude that P = NP, in contradiction to the assumption.

I think the same can be done with two languages in NP-complete whose intersection is the empty language which is clearly also in P.