Sometimes the HTTP Status Code Column, in the 'Performance Samples' table, indicates a value of Zero (0). Other values are legitimate HTTP status codes, such as 200, 500, 503, etc. Could it be that the response was not large enough to contain the response code header value....or there was just a problem reading the response and interpreting it? If so, then i would understand the value '0'. If this is not the case, perhaps a fix of some kind is needed. I have attached a screenshot if it helps.
Here is a Jmeter test result sample where I see 0 for http response code. Response code does not have a number but is instead a text description of error encountered.
<httpSample t="3662" lt="2855" ts="1465332676576" s="false" lb="/SAAS/auth/saml/response" rc="Non HTTP response code: java.io.IOException" rm="Non HTTP response message: Exceeeded maximum number of redirects: 5" tn="Auth 1-59" dt="text" by="7024" ng="100" na="100">
In JMeterParser, httpcode is set to 0 if the code value string is more than 3 characters.