No, instead of the Values clause you use the Select clause to return the insert data
"INSERT INTO applications( `username`, `email`, `contact_name`,
`business_name`, `business_license`, `business_address1,
`business_address2`, `business_city`, `business_zip`,
`business_description`, `business_phone`, `business_size`,
`primary_makes`, `url`, `type`, `date`)
SELECT d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16
FROM (SELECT ('thisisatest' as d1, 'test@gmail.com' as d2, 'Steve' as d3,
'Test Technologies' as d4, '12345' as d5, '123 fake street' as d6,
'#2' as d7, 'Orlando' as d8, '99999' as d9, 'Test Technologies does cool stuff' as d10, '555-555-5555' as d11, 'N/A' as d12, 'N/A' as d13, 'www.google.com' as d14,
'advertiser' as d15, NOW( ) as d16)) AS t
LEFT JOIN `users` u ON ( t.d1 = u.username )
WHERE u.username IS NULL)"
Remember, some of the insert columns must be not null as the subquery will return null values when u.username exists.