Your conditionals make no sense to me. Both usergroup ids checked in your code are 94. You probably want different usergroups, want to check a profile field to see if the individual has elected to display the rank or not, or perhaps I'm not entirely understanding what you're trying to accomplish.
My suggestion is to create a yes/no profile field that the user can edit in the control panel through the Admin CP and note the field ID. In the code below, replace
Y with the field ID. Then, replace
X with the usergroup sponsoring members are moved into through the paid subscription.
PHP Code:
<!-- rank hack -->
<if condition="is_member_of($post, X) AND $post['fieldY'] == 1">
<div class="smallfont"><a href="payments.php"><img src="images/ranks/sponsor.gif" border="0" alt="Rank Type" /></a></div><br />
</if>
<!-- display admin cp defined ranks for everyone -->
<if condition="$post['rank']"><div class="smallfont">$post[rank]</div></if>
<!-- end rank hack -->
Using this method, however, means that all members would see the option to turn this on and off. You might want to base it off of the display group instead and allow members to select which group they want to be associated with (your standard usergroup for registered members vs. your subscription usergroup).