I have just found out what wasAs per commented by Chris, This is the issuecorrect answer. https://stackoverflow.com/questions/9378122/accessing-sitecore-content-with-virtual-folders
We need to mention physical folder same as virtual folder. Patch before attribute is very important here.
Add below attributes in our abc.xyz.com website settings
<site name="abc.xyz.com" patch:before="site[@name='xyz.com']"
virtualFolder="/abc" physicalFolder="/abc"
targetHostName="xyz.com"
....
>