Unique Products in Product Collection Filtered with Category Array in Magento 1.9

I have tried below 3 method but it is not giving correct products as per cateory id array.

First Way

$_productCollection = Mage::getResourceModel('catalog/product_collection')
                    ->addFieldToFilter('status',Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
                    ->joinField('is_in_stock', 'cataloginventory/stock_item', 'is_in_stock', 'product_id=entity_id', 'is_in_stock=1', '{{table}}.stock_id=1', 'left')
                    ->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left')
                    ->addAttributeToFilter('condition', array('eq' => 814))
                    ->addAttributeToFilter('ep_status',array('in'=>array(820,822)))
                    ->addAttributeToFilter('manufacturer',array('in'=>$manufactId))->addAttributeToSelect('*');
$_productCollection->addAttributeToFilter('category_id', array('in' =>  array('finset' => $catManufacturers )));
$_productCollection->getSelect()->group('entity_id')->distinct(true);

Second Way

$_productCollection = Mage::getModel('catalog/product')->getCollection()         
                    ->addAttributeToFilter('condition', array('eq' => 814))
                    ->addAttributeToFilter('ep_status',array('in'=>array(820,822)))
                    ->addAttributeToFilter('manufacturer',array('in'=>$manufactId))->addAttributeToSelect('*');
if(!empty($catManufacturers)){
    foreach ($catManufacturers as $k => $index) {
        $name = 'category_id_'.$k;
        $_productCollection->joinField($name, 'catalog/category_product', 'category_id', 'product_id=entity_id', null, 'left')
            ->addAttributeToFilter($name, array('eq' => $index));
    }
}
$_productCollection->getSelect()->group('entity_id')->distinct(true);

Third Way

$_productCollection =  Mage::getResourceModel('catalog/product_collection')
                    ->addFieldToFilter('visibility', 4)
                    ->addAttributeToFilter('ep_status',array('in' => array(820,822)))
                    ->addAttributeToFilter('manufacturer',array('in'=>$manufactId))
                    ->addAttributeToSelect('*')
                    ->joinField('is_in_stock', 'cataloginventory/stock_item', 'is_in_stock', 'product_id=entity_id', 'is_in_stock=1', '{{table}}.stock_id=1', 'left')
                    ->addFieldToFilter('condition', array('in' => array(814)));
                $_productCollection->joinField('category_id','catalog/category_product','category_id','product_id=entity_id',null,'left')
                    ->addAttributeToFilter('category_id', array('in' => $catManufacturers));
                $_productCollection->getSelect()->distinct(true);
                $_productCollection->getSelect()->group('entity_id');