I think the issue is that with virtual rasters, you need to use the Export option to export the results of the subset. There is a pretty good discussion of how to handle subsets and saving of rasters in the following location of the ENVI 5.3 help:
Programming > Programming Guide > Working with Rasters
or our documentation center:
http://www.exelisvis.com/docs/program...
For example,
Val = ENVISubsetRaster(Raster, BANDS=2)
Val.export, valname, 'envi'
You might also consider using ENVI's masking routines rather than image threshold here. Masking is also discussed in that same section of the ENVI Programming Guide.