И не будет работать - у вас, помимо некоторых синтаксических опечаток (например надо писать не
<xsl:if = "">
a
<xsl:if test="">
) еще и классическая ошибка структуры коды - нарушение порядка вложенности тегов.
Если внутри xsl:if вы открыли тег td, то закрыть его вы должны тоже внутри этого же xsl:if
Но в вашем случае вкладывать td внутрь xsl:if это будет неудобно.
Поэтому тут два варианта:
через переменную, или через xsl:attribute
Переменная вычисляется ДО открывающего тега td, и ее значение подставляется в параметр style.
А в варианте с xsl:attribute значение определяется сразу после открывающего td.
пример 1го варианта:
<xsl:variable name="cell_image_url">
<xsl:choose>
<xsl:when test="$parent_group_id = 836">/logotyp/logo.jpg</xsl:when>
<xsl:otherwise>/images/group_back.jpg</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<td style="background: url('{$cell_image_url}') no-repeat 0 0;height:60px;width:159px;padding-bottom:5px;">
здесь контент ячейки
</td>
пример второго варианта:
<td style='background: url("/images/group_back.jpg" no-repeat 0 0;height:60px;width:159px;padding-bottom:5px;'>
<xsl:if test="$parent_group_id = 836">
<!-- несмотря на то, что выше для td указано другое значение параметра style, но тег xsl:attribute сотрет указанное выше значение style и заменит на то что написано в самом xsl:attribute -->
<xsl:attribute name="style">background: url('/logotyp/logo.jpg') no-repeat 0 0;height:60px;width:159px;padding-bottom:5px;</xsl:attribute>
</xsl:if>
здесь контент ячейки
</td>