**Please add below changes to your code.**

You need to add GROUP BY entity_id.

Add select query on collection like below.


    $collection->getSelect()->joinLeft(
                array('s' => new Zend_Db_Expr('(SELECT (o.grand_total - o.tax_amount) grand_excl_tax,'
                    . ' FROM ' . Mage::getSingleton('core/resource')->getTableName('sales/invoice') . ' AS o'
                    . ' GROUP BY entity_id)')),
                "s.entity_id = main_table.entity_id",
                array('grand_excl_tax')
            );

After that add filter_index in addColumn

    $this->addColumn('grand_excl_tax', array(
            'header'    => Mage::helper('customer')->__('Amount Excl. Tax'),
            'index'     => 'grand_excl_tax',
            'filter_index' => 's.grand_excl_tax',
            'type'      => 'currency',
            'align'     => 'right',
            'currency'  => 'order_currency_code',
        ));
I am tested it and it's working fine form me , After applying this there is not any issue on grid filter

Let me know still if you face any issue.