I was able to find a solution by first copying the records I needed to delete to a temporary table and referencing that in my DELETE statement. The following seems to have accomplished what I needed:
CREATE TABLE wp_usermeta_temp (umeta_id bigint(20), user_id bigint(20), meta_key varchar(255), meta_value longtext);
INSERT INTO wp_usermeta_temp
SELECT * FROM wp_usermeta WHERE user_id NOT IN ( SELECT um1.user_id FROM wp_usermeta um1 WHERE um1.meta_key = 'shipping_first_name');
DELETE FROM wp_usermeta WHERE wp_usermeta.umeta_id IN (SELECT umeta_id FROM wp_usermeta_temp);
DELETE FROM wp_users WHERE wp_users.ID IN (SELECT DISTINCT user_id FROM wp_usermeta_temp);
Then deleting the temp table when this was done.