Intrusive data structures are not inherently better or worse than non-intrusive data structures.
The best choice is not to share data between threads. If threads do need to share data, the second best choice is a read-only data structure, which consequently needs no synchronization.
Shared data structures are a communication path between threads. As such you need to think carefully about whether having a directly-shared data structure is the best means of communication. What do you need of the data structure? Would a message queue suffice? Do you need concurrent access to the same data, or do different threads access distinct parts of the data structure?
There is nothing about intrusive data structures that makes them any better or worse than the alternatives for multi-threaded use in general.