Having another table (as Lawrence mentioned in comment) is the usual way to go. But if you must use the current format, then you can have a like query with regx, if they sequence of the social networks is fixed then the query will be simpler. This SO post has some examples.
Update: If your set of categories are fixed and in same sequence as you mentioned in comment, then you don't even need to use like or regex. You can do an exact string match.
Use a function like following to get the string to match-
function getCategoryString($facebook = 0, $gmail =0, $linkedIn = 0, $social=0, $event=0, $other=0)
{
$qry = "({\"Facebook\":".$facebook.",\"Gmail\":".$gmail.",\"LinkedIn\":".$linkedIn.",\"Social\":".$social.",\"Event\":".$event.",\"Other\":".$other."})";
return $qry;
}
and then use that string in the query-
$sql = "SELECT * FROM `table` WHERE `category` = ".getCategoryString(1,1,0,0,0,0)
Note that tou'll have to modify this to escape the categoryString properly. I don't work in php so not sure what functions are used to escape mysql queries in php.