but if i change the second list in any way, the first list should remain the same
So just copy the references into a new list. There are constructors for that.
but if i change an item from the second list, it should also modify in the first.
See above.
I've tried using clones, constructors that would just copy the attributes of one object and create another and add that in the second list
That's what you don't want to do. You want the original references in both lists.
but every time i change the second list, the first one changes also
Not possible. If you did want you describe, the two lists and their contents are completely independent. In any case this is the wrong approach. This also constitutes dereferencing the original objects, which you said you didn't want to do.
Just adding each item from the first list to the second doesn't work
Yes it does. I suggest you have confused yourself with all these alternatives.