The problem is more in the ADO.net side of thing than in PetaPoco. PetaPoco only create the Params and fill them with your values.
But, handling a null in the WHERE clause is tricky, as this MSDN article says:
Testing for Null
If a column in a table (in your database) allows nulls, you cannot test for a parameter value of "equal to" null. Instead, you need to write a WHERE clause to test whether both the column is null and the parameter is null. The following SQL statement returns rows where the LastName column equals the value assigned to the @LastName parameter, or whether both the LastName column and the @LastName parameter are null.
SELECT * FROM Customers WHERE ((LastName = @LastName) OR (LastName IS NULL AND @LastName IS NULL))