This revolves around the fact that Dapper uses the GetValue method on the IDataRecord interface. The concrete class in the System.Data.SqlLite namespace probably map values differently than that of System.Data.SqlClient.
As @FelicePollano pointed out try changing the structure of the SQLLite table and see if that causes the concrete class in System.Data.SqlLite to map it differently.
Another option is to roll your own mapping using the FastExpando object Dapper returns and force it to convert the value to a Int.
IEnumerable<dynamic> results = Conn.Query("Select ID from SomeTable");
var testValue = new Test
{
ID = Convert.ToInt32(Results[0].ID.ToString())
};
Not really a big fan of it because it could require a lot of code changes, but it can work.
Please note: That example code can throw a exception if the ID column is not an integer. You can use TryParse, but for the sake of brevity I didn't include it.