There is. The formula is a little challenging -- here's a explanation of it.
But, you know -- do you need to store the "formatted" pay rate? Why not just put two expressions boxes (calculated values in IP 2010) on your form with some conditional formatting. One has the text "N/H" in it, and is conditionally formatted to hide if PayRateUnformatted != 0. The other is PayRateUnformatted formatted as a percent (so you don't have to concat) or your original concat formula. Hide if PayRateUnformatted = 0.
I suppose, if you are promoting the PayRate to your SharePoint library, you'd need that formatted field though. I think the link in my first paragraph's Method 2 would work for you... something like this:
concat(
substring("N/H", 1, (../my:Working/my:PayRateUnformatted = 0) * 3),
substring(concat(../my:Working/my:PayRateUnformatted, "%") , 1, (not(../my:Working/my:PayRateUnformatted = 0)) * string-length(concat(../my:Working/my:PayRateUnformatted, "%"))))