Change
<xsl:for-each select="AllServices/Service">
<xsl:if test=".!=''">
<xsl:value-of select="." />
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:if>
</xsl:for-each>
to
<xsl:for-each select="AllServices/Service[.!='']">
<xsl:value-of select="." />
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:for-each>
Or in XSLT 2.0 it becomes a one-liner:
<xsl:value-of select="AllServices/Service[.!='']" separator=", "/>
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference