OK, I am able to reproduce this problem. It appears this is a bug in ecart where it won't work properly with complex SQL statements.
The temporary fix would be to update your SQL to:
SELECT * FROM products WHERE ProductID = %s OR ( -1= %s AND ProductID= %s) AND ProductLive <> 0
Then after editing the add to cart you can change the SQL query back so that it can properly track inventory. It appears the add to cart interface is getting confused by the nested select statements.
I will log this as a bug in eCart that we can look into in the next release.