This is possible using a combination of weight settings and shipping rules.
The weight settings will not be the actual weight of your products. Set the weight of the one particular SKU you want to give free shipping on to 0, and set everything else to a higher value such as 10. If you are using products with variants each SKU can have a different weight value so this will work fine even if it is just one particular set of options that gets free shipping.
Then create three shipping rules with the following settings, ignoring any other settings that aren't mentioned:
For free shipping on the special SKU:
Shipping Rate Calculator: Flat
Shipping Amount: 0.00
Country: United States (this particular setting is optional, but will allow you the option to add international rates later if you wish)
Set Min Weight to 0 and Max Weight to .9
For free shipping on everything else within Texas:
Shipping Rate Calculator: Flat
Shipping Amount: 0.00
Country: United States
State: Texas
Set Min Weight to 1 and Max Weight to 0 (max weight of 0 means no upper limit)
For all other states:
Shipping Rate Calculator: Flat
Shipping Amount: 10.00
Country: United States
Set Min Weight to 1 and Max Weight to 0
Any order for just the special item will fall under the first rule because the weight value of that order will be 0.
For orders of any other combination of items the weight value will exceed 1, which means they fall under the second two rules. And because specific locations override other rules all Texas orders will still get free shipping regardless of the weight values while any other state will trigger the $10.00 flat rate.
If you are only shipping within the United States it is not necessary to create other rules, but this setup allows for international rates to be added in later should it ever be necessary.