position() logic may work for you. Try something like this:
Code:
<xsl:key name="variants-by-price" match="Products/Product" use="Price" />
<h3>Price Range</h3>
<ul>
<xsl:for-each select="/root/Products/Product[count(. | key('variants-by-price', Price)[1]) = 1]">
<xsl:sort select="Price"></xsl:sort>
<xsl:variable name="ProductPrice" select="Price" />
<xsl:if test="position() = 1">
<li><a href="">$<xsl:value-of select="format-number($ProductPrice,'###,###.00')" disable-output-escaping="yes" /></a> <small>(<xsl:value-of select="count(/root/Products/Product[Price = $ProductPrice])" />)</small></li>
</xsl:if>
<xsl:if test="position() = last()">
<li><a href="">$<xsl:value-of select="format-number($ProductPrice,'###,###.00')" disable-output-escaping="yes" /></a> <small>(<xsl:value-of select="count(/root/Products/Product[Price = $ProductPrice])" />)</small></li>
</xsl:if>
</xsl:for-each>
</ul>