Le { } sono un modo alternativo per assegnare attributi, anzichè usare xsl:attribute. In questo caso non vanno usate. Quindi:
<xsl:apply-templates select="database/album[nome = $chiave]" />
<xsl:if test="nome = $chiave">
Controlla anche che non si debba scrivere
<xslaram name="chiave">default value</xsl
aram> anzichè
<xslaram name="chiave" select="'default value'"/> (non mi ricordo...)