I believe the material is just "SOAP" not "SOAP_MAT"
If it is then the reactions in the vanilla raws are wrong. I just copy-pasted the reaction and tinkered with the reaction a bit.
The vanilla reaction is:
[REACTION:MAKE_SOAP]
[NAME:make soap]
[BUILDING:SOAP_MAKER:CUSTOM_T]
[REAGENT:lye:150:LIQUID_MISC:NONE:LYE]
[REAGENT:lye container:1:NONE:NONE:NONE:NONE]
[CONTAINS:lye]
[PRESERVE_REAGENT]
[DOES_NOT_DETERMINE_PRODUCT_AMOUNT]
[REAGENT:tallow:1:GLOB:NONE:NONE:NONE][REACTION_CLASS:TALLOW][UNROTTEN]
[HAS_MATERIAL_REACTION_PRODUCT:SOAP_MAT]
[PRODUCT:100:1:BAR:NONE:GET_MATERIAL_FROM_REAGENT:tallow:SOAP_MAT]
[PRODUCT_DIMENSION:150]
[SKILL:SOAP_MAKING]
It uses GET_MATERIAL_FROM_REAGENT. The second part ("SOAP_MAT") of that tag points to a MATERIAL_REACTION_PRODUCT in the designated reagent ("tallow" in this case). It's saying "Go to the tallow material, look for a MATERIAL_REACTION_PRODUCT tag called SOAP_MAT and use the material it says to use"
In your case, you are not pulling the material from one of your reagents (you don't have any!) so you need to point to the material that you want directly. If you used dragon tallow in the vanilla reaction, its product line would look at the tallow material and follow its SOAP_MAT tag back to dragon soap.
Changing the product to CREATURE_MAT:DRAGON:SOAP should work.
EDIT: Like so - [PRODUCT:100:1:BAR:NONE:CREATURE_MAT:DRAGON:SOAP][PRODUCT_DIMENSION:150]