Firstly
<xsl:variable name="ID"><xsl:value-of select="./@id" /></xsl:variable>
is a ludicrously inefficient way of saying
<xsl:variable name="ID" select="./@id" />
Why create a result tree fragment when you only want a string, especially as it makes your code twice the length?
Presumably therefore you have an @id attribute containing the string
T123, Y445, G666, Y5454
You can convert this to your required output using
translate($ID, ', ', '#xa;')
However if your output is HTML then generating newlines isn't enough to have each string displayed on a newline, you need to generate <br/> elements. For that you need to tokenize the string - go to
www.exslt.org and find the str:tokenize() template. It's built into some processors but if not there's an XSLT implementation you can copy into your stylesheet.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference