Your Rogue Has a Case of My Guy Syndrome
Assuming the standard party of good-aligned murderhobos, that is. If you have a bunch of evil backstabbers, everyone should pretty much be expecting this behavior from everyone else. But if the party is more or less good-aligned or lawful-aligned, then rogues steal FOR the party, not FROM the party. Even a neutral or neutral-evil character should know who his allies are and be able to conclude that a party of accomplices is quite a bit better for him than a party of executioners.
But what often happens - and it's almost always rogues - is that they see it as their purpose in life to screw over the rest of the party. Because hey, rogue, right? Players of chaotic neutral characters also often like to behave this way. But they're really counting on the out of game social contract - the other players probably don't want to kill them - to protect their in game behavior. This is really griefing behavior although in D&D it is known as my guy syndrome. Being a goblin certainly isn't a pass on that. (Also, IMO, monster races for PCs are usually trouble).
Take the Mafia, the closest real-life example to the typical thieves' guild found in a typical D&D campaign. They are strict about treating each other with the proper honor and respect, especially when working together. Rival factions might fight each other, but conflict within a group is always handled by civilized, if not necessarily non-violent, rules. In alignment terms, they might be evil, but it's very much lawful evil. So a typical rogue should be expected to understand and be familiar with concepts of trust and loyalty and know when to apply those concepts. In fact these concepts are more important because there is no legal system to fall back on. A rogue who betrays indiscriminately is soon to be a dead rogue.
So what can you do about it? As the DM, it's not your job to force the issue. You shouldn't be an accomplice to the rogue, but neither should you be the dictator of behavior standards. But you can arrange for the players to know what is going on, so they can correct - or accept - the misbehaving player in their own way. This might range anywhere from an embarrassed rogue handing over the item and promising to mend his ways, to a heated but (hopefully) temporary out of character exchange, to a violent in-character conflict resulting in a character death but which the players find quite entertaining. The players should decide which of these options they pursue. Not all outcomes here are good, of course. You could be facing a player exile or even game breakup, but again that would be the choice of the players (the rogue player's choice, if he won't play nice; the group will almost certainly forgive a repentant player here).
If the players already know
If the other players do know about the situation but just haven't acted on it, then you should consider whether you need to do anything at all. Is the warlock player actually unhappy?
If your warlock player is unhappy but just not standing up for himself, you could probably have an out of character chat about the situation at the start of your next session. Mention that you created a specific magic item intended for a particular character, and that the party has decided not to give it to that character, and that it's up to them but you aren't going to tiptoe around the players' poor allocation of resources, and that the hitpoint situation carries an increased risk of death for the warlock. The players will either decide to give the amulet to the warlock, or the warlock player will tell you that he's actually ready to die and create a new character anyway, or they'll spend the whole session bickering, but one way or another it'll get solved. There aren't really any other options.
If the players don't know
One option you have is to give the players ways to expose the treachery. Not simply telling everyone, but arranging that the players find out. For instance, you could give the players a situation in which detect magic is useful (perhaps they must identify which item in a cluttered room is enchanted); the spell then "coincidentally" reveals the amulet secretly being carried by the rogue. A clumsy rogue player will just get caught - a more skillful one will try to prevent the spell from being cast, be out of the area when it happens, or otherwise do something that should indirectly clue in the other players if they are paying attention. Hopefully someone other than the rogue is the one who casts the spell. If the rogue is a real dummkopf, he'll completely forget that detect magic will expose him, and now the spellcasting player knows a secret!
You could also present an NPC who will make a trade of value to the rogue, but requires a suitable magic item in exchange. Make sure the NPC is only available one time, when the rest of the party is also present. The rogue then must choose whether to expose his own treachery or pass up the reward. It doesn't have to be (in fact probably should not be) cursed, the thing the rogue trades for can be totally above-board because the real penalty will be the party not trusting him any more. Especially when playing as a paladin or cleric, I have found more than one opportunity and excuse to search the belongings of a party member, usually a rogue, that I had come to distrust, which has occasionally been productive (and sometimes I have been surprised to find nothing more than a couple of dozen extra gold pieces!) Or the players may all have an out-of-character conversation right then. Either way, they'll sort it out.
One particularly deft DM I once played with provided the thieving rogue with an "opportunity" in which he was caught by NPCs, and the party was forced to decide whether to rescue him even knowing what he had done. (The deftness was in giving him more than one chance to back out, so he was never railroaded - he chose to get caught!)
I don't really like creating a second, similar item for the player who was intended to receive it. This is too heavy-handed for my taste. Suspension of disbelief can absorb one magic item which is coincidentally perfectly suited to a particular character who needs it - two is just not believable unless you are trading with a band of gnomes that makes this particular item or something. It also doesn't resolve the essential problem, which is the behavior of the rogue player, not the warlock's constitution. You will just run into a similar situation again down the road.
The Alternative Approach
You can also just tell the rogue player that his playstyle is wrong (or at least, wrong for this game) and he needs to do things differently. Sometimes the direct approach is better with new players, especially ones that may not have thought through the implications of their (mis)behavior. "Jerk that griefs the other players" is not a viable character concept, so it's a case of better late than never on telling him that.
If four players are playing by one set of rules and the fifth one is playing by different rules, you really just need to stop and agree on the rules, never mind high-minded concepts of impartiality and agency. It can, at times, be worth saying "I normally wouldn't break character like this, but everyone should know what Player X has done, and I don't think it's OK" - saving you the complexity and time of revealing things through in-game means, especially if you aren't able to come up with a scenario that is going to get the job done. Sometimes the DM has to strike a fine balance between being out of the way as the game's laws of physics, and preserving the out-of-game social situation. Whatever you do, don't let it fester.
One Final Tip
If you roll for stats, let the players assign their die roll results to the stats they want. Nobody is going to take a 6 constitution score voluntarily - if they do it's their own fault!
Stuff Based On Comments, Etc
I think you've just got That Guy in your game.
Sometimes a player has made a character in good faith but that character just doesn't fit with the rest of the party / story. This is not a case of anyone intentionally ruining the game, it's just an unfortunate emergent property of certain character combinations. A good player will adjust the character to fit the game, or retire the character and make a new one. Maybe the impulsive barbarian is tired of being held back by the cautious cleric and thoughtful wizard and goes off on his own, then the player creates a disciplined former soldier fighter who fills the same role in combat but has a more compatible personality. Or they could just adjust the character's personality a bit. Actual character development! In a D&D game!
But often, a player hides behind the rules or character sheet so he can mess with the other players or GM. And I think this is what you have. There are lots of variations on this guy but basically they're all power trippers. You've got rules lawyers, munchkins, spotlight hogs, and toxic My Guys; a bunch of different ways to make themselves the most important player in the game at the expense of everyone else. This player is elevating himself over the other players and he's trying to push you around too (demanding extra XP for himself).
Warning signs for this include CN alignment, monster race, and any kind of character trait that says "can't help but do X" when X is some obnoxious thing. "Can't help but donate gold to the temple of my god whenever I visit" isn't a problem, "can't help but rob the other players" is. You would be amazed how much they can actually help it when doing so would get them killed. You never see these players try to steal the king's crown as his heavily armed procession marches past. You should feel free to ban or heavily restrict all of these things in your game, it won't fix the player but it will put them on notice and give you some warning. They usually play rogues too, but rogues are an archetype class and you can't just not have rogues.
One problem is that TSR/WotC has always basically given these players permission via the CN alignment. I wish they would write a better definition for it, because as written CN is basically indistinguishable from CE. Suppose you were back in the real world and someone stole their friend's lifesaving medicine to resell it on the black market. Suppose it's an experimental treatment that can't even easily be replaced. This person is obviously a sociopath or under some severe compulsion (addiction, maybe, or a severe threat was made against them). If not compelled, though, we would put them in jail; they are evil. And this is exactly what this character has done. But problem players will just say "I was following my whims, just like it says in the book!" But fixing alignment is out of scope here.
Anyway, if the player is new, he might just not understand how the game is supposed to work. It could be a teachable moment. But if he's played a few times, he knows what he's doing, and you just have to deal with him in the best way that your social environment permits.
If your player is repentant, you could even give him the compulsion excuse as a way out. "I didn't want to steal this amulet, there was a geas/dominate person/whatever" and tracking down the cause of the compulsion could be a good quest hook.