To complement Mathias' helpful answer with a PowerShell (Core) 7+ alternative, using the Join-String cmdlet:
# Sample input values
[System.Collections.Generic.List[System.String]] $IDList = 'id1', 'id2'
# -> '{id1},{id2}'
$IDList | Join-String -FormatString '{{{0}}}' -Separator ','
-FormatString accepts a format string as accepted by the .NET String.Format method, as also used by PowerShell's -foperator, with placeholder {0} representing each input string; literal { characters must be escaped by doubling, which is why the enclosing { and } are represented as {{ and }}.
Alternatives that work in Windows PowerShell too:
Santiago Squarzon proposes this:
'{{{0}}}' -f ($IDList -join '},{')
Another - perhaps somewhat obscure - option is to use the regex-based -replace operator:
$IDList -replace '^', '{' -replace '$', '}' -join ','
{id1},{id2}is as aString. Will no longer be a List or Array. Are you aware / ok with that?