neo4j taking 12 hours to load
The query itself is problematic.

It's not using labels in the match pattern, which means it will have to perform an AllNodesScan to find both n1 and n2. So that's happening twice per row in your CSV file. An EXPLAIN of the query would have showed you this in the query plan.

You need to add labels into these match patterns for n1 and n2, which would at least get you to two NodeByLabelScans per row, but to make this performant you need to also have an index on the relevant label for the id property.