I'm not sure how to recreate the issue but in 2.5 it appears that the returned list of specification attribute option ids does not return all of the proper ids.
I've tested this by running the stored procedure manually and reviewing the results. Some of the proper ids do not show up in the comma delimited out variable.
I have figured it out, the length is too short in cases where you have a lot of specifications
@FilterableSpecificationAttributeOptionIds nvarchar(100) = null OUTPUT // nvarchar length of 100 causes the COALESCE function to break once the variable reaches its max length
for my solution I changed it to
@FilterableSpecificationAttributeOptionIds nvarchar(MAX) = null OUTPUT //in my case this variable can be very very large so I'm not sure what hard memory allocation to place on it)